﻿using Mes.Domain.BoundedContext;
using Mes.Application.DTO.Inputs.Operations;
using Mes.Application.DTO.Results.Operations;

namespace Mes.Application.Services.Operations
{
    public interface IProcessRouteService
    {
        /// <summary>
        /// 新增工艺路线
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task AddProcessRouteAsync(AddProcessRouteInput input);

        /// <summary>
        /// 编辑工艺路线
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateProcessRouteAsync(UpdateProcessRouteInput input);

        /// <summary>
        /// 删除工艺路线
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task DeleteProcessRoutesAsync(IList<int> ids);

        /// <summary>
        /// 分页查询工艺路线
        /// </summary>
        /// <param name="input"></param>
        /// <returns>PagedItemsData<ProcessRoutesResult></returns>
        Task<PagedItemsData<ProcessRoutesResult>> GetProcessRoutesAsync(GetProcessRoutesInput input);

        /// <summary>
        /// 查询指定工艺路线
        /// </summary>
        /// <param name="id"></param>
        /// <returns>ProcessRouteResult</returns>
        Task<ProcessRouteResult> GetProcessRouteAsync(int id);

        /// <summary>
        /// 查询工艺路线
        /// </summary>
        /// <param name="ids"></param>
        /// <returns>ItemsResult<ProcessRoutesResult></returns>
        Task<ItemsResult<ProcessRoutesResult>> GetProcessRoutesByIdsAsync(IList<int> ids);
    }
}
